package cn.sunlelin.educationserver.controller;

import cn.sunlelin.educationserver.entity.Coursetype;
import cn.sunlelin.educationserver.mapper.CoursetypeMapper;
import cn.sunlelin.educationserver.service.CoursetypeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RestController
@CrossOrigin
public class CoursetypeController {
    @Autowired
    private CoursetypeService coursetypeService;

    //Post请求 http://localhost:8089/coursetype/createCoursetype
    @PostMapping("/coursetype/createCoursetype")
    public Map<String,Object> createCoursetype(@RequestBody Coursetype coursetype){
        Map<String,Object> map=new HashMap<>();
        if(coursetypeService.createCoursetype(coursetype)){
            map.put("code",200);
            map.put("msg","创建课程类型成功");
            map.put("dataobject",null);
        }
        else {
            map.put("code",500);
            map.put("msg","创建课程类型失败,课程类型名已存在");
            map.put("dataobject",null);
        }
        return map;
    }

    //Post请求 http://localhost:8089/coursetype/updateCoursetype
    @PostMapping("/coursetype/updateCoursetype")
    public Map<String,Object> updateCoursetype(@RequestBody Coursetype coursetype){
        Map<String,Object> map=new HashMap<>();
        if(coursetypeService.updateCoursetype(coursetype)){
            map.put("code",200);
            map.put("msg","修改课程类型信息成功");
            map.put("dataobject",null);
        }
        else {
            map.put("code",500);
            map.put("msg","修改课程类型信息失败,课程类型名已存在");
            map.put("dataobject",null);
        }
        return map;
    }

    @GetMapping("/coursetype/findAll")
    public Map<String,Object> findAll(){
        List<Coursetype> coursetypeList= coursetypeService.findAll();
        Map<String,Object> map=new HashMap<>();
        if(coursetypeList.size()!=0){
            map.put("code",200);
            map.put("msg","查询所有课程类型信息成功");
            map.put("dataobject",coursetypeList);
        }
        else {
            map.put("code",500);
            map.put("msg","查询所有课程类型信息失败");
            map.put("dataobject",null);
        }
        return map;
    }

    //Get请求 http://localhost:8089/coursetype/selectCoursetypeById/{coursetypeId}
    @GetMapping("/coursetype/selectCoursetypeById/{coursetypeId}")
    public Map<String,Object> selectCoursetypeById(@PathVariable Integer coursetypeId){
        Coursetype coursetype= coursetypeService.selectCoursetypeById(coursetypeId);
        Map<String,Object> map=new HashMap<>();
        if(coursetype!=null){
            map.put("code",200);
            map.put("msg","根据Id查找课程类型信息成功");
            map.put("dataobject",coursetype);
        }
        else {
            map.put("code",500);
            map.put("msg","根据Id查找课程类型信息失败");
            map.put("dataobject",null);
        }
        return map;
    }

    @GetMapping("/coursetype/selectCoursetypeByFathertypeId/{fathertypeId}")
    public Map<String,Object> selectCoursetypeByFathertypeId(@PathVariable Integer fathertypeId){
        List<Map<String,Object>> coursetype= coursetypeService.selectCoursetypeByFathertypeId(fathertypeId);
        Map<String,Object> map=new HashMap<>();
        if(coursetype!=null){
            map.put("code",200);
            map.put("msg","根据大类Id查找课程类型信息成功");
            map.put("dataobject",coursetype);
        }
        else {
            map.put("code",500);
            map.put("msg","根据大类Id查找课程类型信息失败");
            map.put("dataobject",null);
        }
        return map;
    }

    //Get请求 http://localhost:8089/coursetype/deleteCoursetype/{coursetypeId}
    @GetMapping("/coursetype/deleteCoursetype/{coursetypeId}")
    public Map<String,Object> deleteCoursetype(@PathVariable Integer coursetypeId){
        Map<String,Object> map=new HashMap<>();
        if(coursetypeService.deleteCoursetype(coursetypeId)){
            map.put("code",200);
            map.put("msg","删除课程类型信息成功");
            map.put("dataobject",null);
        }
        else {
            map.put("code",500);
            map.put("msg","删除课程类型信息失败,课程类型不存在");
            map.put("dataobject",null);
        }
        return map;
    }

    //Post请求 http://localhost:8089/coursetype/selectCoursetypeByName/{coursetypeName}
    @GetMapping("/coursetype/selectCoursetypeByName")
    public Map<String,Object> selectCoursetypeByName(String coursetypeName){
        Coursetype coursetype= coursetypeService.selectCoursetypeByName(coursetypeName);
        Map<String,Object> map=new HashMap<>();
        if(coursetype!=null){
            map.put("code",200);
            map.put("msg","根据Name查找课程类型信息成功");
            map.put("dataobject",coursetype);
        }
        else {
            map.put("code",500);
            map.put("msg","根据Name查找课程类型信息失败");
            map.put("dataobject",null);
        }
        return map;
    }
}
